from collections import defaultdict as dd
from collections import deque
import bisect
import heapq
def ri():
return int(input())
def rl():
return list(map(int, input().split()))
def solve():
n, m = rl()
s = input()
ones = s.count("1")
if (ones * m) % n != 0:
print (-1)
return
else:
need = (ones * m) // n
have = 0
for i in range(m):
if s[i] == "1":
have += 1
if have == need:
print (1)
print (1, m)
return
s = s + s
for i in range(m, 2 * n):
if s[i] == "1":
have += 1
if s[i - m] == "1":
have -= 1
if have == need:
if i < n:
print (1)
print (i - m + 2, i + 1)
return
else:
print (2)
print (1, i - n + 1)
print (i - m + 2, n)
return
mode = 'T'
if mode == 'T':
t = ri()
for i in range(t):
solve()
else:
solve()
232. Implement Queue using Stacks | 844. Backspace String Compare |
20. Valid Parentheses | 746. Min Cost Climbing Stairs |
392. Is Subsequence | 70. Climbing Stairs |
53. Maximum Subarray | 1527A. And Then There Were K |
1689. Partitioning Into Minimum Number Of Deci-Binary Numbers | 318. Maximum Product of Word Lengths |
448. Find All Numbers Disappeared in an Array | 1155. Number of Dice Rolls With Target Sum |
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |